Appearance
Event catalogue
Event types are named {product}.{resource}.{action} in the past tense. Each one is delivered to your webhook endpoints in the event envelope and is listed by GET /v1/events for 30 days.
access.entitlement.expired
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
customer | string or null | no | |
contact_hash | string or null | no | |
resource | object | yes | |
resource.type | string | yes | |
resource.id | string | yes | |
resource.variant | string or null | yes | |
source | payment, tenant_grant, comp, subscription, membership_tier, ticket, promotion | yes | |
source_ref | string or null | no | |
starts_at | string or null (date-time) | no | |
ends_at | string or null (date-time) | no | |
limits | object | yes | |
limits.max_devices | integer | no | |
limits.max_concurrent_sessions | integer | no | |
limits.max_views | integer | no | |
limits.allowed_countries | array of string | no | |
limits.allowed_domains | array of string | no | |
limits.concurrency_policy | reject_new, replace_oldest | no | |
status | active, suspended, revoked, expired | yes | |
external_id | string or null | no | |
metadata | object | no | |
livemode | boolean | yes | |
created_at | string or null (date-time) | no |
access.entitlement.extended
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
customer | string or null | no | |
contact_hash | string or null | no | |
resource | object | yes | |
resource.type | string | yes | |
resource.id | string | yes | |
resource.variant | string or null | yes | |
source | payment, tenant_grant, comp, subscription, membership_tier, ticket, promotion | yes | |
source_ref | string or null | no | |
starts_at | string or null (date-time) | no | |
ends_at | string or null (date-time) | no | |
limits | object | yes | |
limits.max_devices | integer | no | |
limits.max_concurrent_sessions | integer | no | |
limits.max_views | integer | no | |
limits.allowed_countries | array of string | no | |
limits.allowed_domains | array of string | no | |
limits.concurrency_policy | reject_new, replace_oldest | no | |
status | active, suspended, revoked, expired | yes | |
external_id | string or null | no | |
metadata | object | no | |
livemode | boolean | yes | |
created_at | string or null (date-time) | no |
access.entitlement.granted
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
customer | string or null | no | |
contact_hash | string or null | no | |
resource | object | yes | |
resource.type | string | yes | |
resource.id | string | yes | |
resource.variant | string or null | yes | |
source | payment, tenant_grant, comp, subscription, membership_tier, ticket, promotion | yes | |
source_ref | string or null | no | |
starts_at | string or null (date-time) | no | |
ends_at | string or null (date-time) | no | |
limits | object | yes | |
limits.max_devices | integer | no | |
limits.max_concurrent_sessions | integer | no | |
limits.max_views | integer | no | |
limits.allowed_countries | array of string | no | |
limits.allowed_domains | array of string | no | |
limits.concurrency_policy | reject_new, replace_oldest | no | |
status | active, suspended, revoked, expired | yes | |
external_id | string or null | no | |
metadata | object | no | |
livemode | boolean | yes | |
created_at | string or null (date-time) | no |
access.entitlement.resumed
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
customer | string or null | no | |
contact_hash | string or null | no | |
resource | object | yes | |
resource.type | string | yes | |
resource.id | string | yes | |
resource.variant | string or null | yes | |
source | payment, tenant_grant, comp, subscription, membership_tier, ticket, promotion | yes | |
source_ref | string or null | no | |
starts_at | string or null (date-time) | no | |
ends_at | string or null (date-time) | no | |
limits | object | yes | |
limits.max_devices | integer | no | |
limits.max_concurrent_sessions | integer | no | |
limits.max_views | integer | no | |
limits.allowed_countries | array of string | no | |
limits.allowed_domains | array of string | no | |
limits.concurrency_policy | reject_new, replace_oldest | no | |
status | active, suspended, revoked, expired | yes | |
external_id | string or null | no | |
metadata | object | no | |
livemode | boolean | yes | |
created_at | string or null (date-time) | no |
access.entitlement.revoked
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
customer | string or null | no | |
contact_hash | string or null | no | |
resource | object | yes | |
resource.type | string | yes | |
resource.id | string | yes | |
resource.variant | string or null | yes | |
source | payment, tenant_grant, comp, subscription, membership_tier, ticket, promotion | yes | |
source_ref | string or null | no | |
starts_at | string or null (date-time) | no | |
ends_at | string or null (date-time) | no | |
limits | object | yes | |
limits.max_devices | integer | no | |
limits.max_concurrent_sessions | integer | no | |
limits.max_views | integer | no | |
limits.allowed_countries | array of string | no | |
limits.allowed_domains | array of string | no | |
limits.concurrency_policy | reject_new, replace_oldest | no | |
status | active, suspended, revoked, expired | yes | |
external_id | string or null | no | |
metadata | object | no | |
livemode | boolean | yes | |
created_at | string or null (date-time) | no |
access.entitlement.suspended
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
customer | string or null | no | |
contact_hash | string or null | no | |
resource | object | yes | |
resource.type | string | yes | |
resource.id | string | yes | |
resource.variant | string or null | yes | |
source | payment, tenant_grant, comp, subscription, membership_tier, ticket, promotion | yes | |
source_ref | string or null | no | |
starts_at | string or null (date-time) | no | |
ends_at | string or null (date-time) | no | |
limits | object | yes | |
limits.max_devices | integer | no | |
limits.max_concurrent_sessions | integer | no | |
limits.max_views | integer | no | |
limits.allowed_countries | array of string | no | |
limits.allowed_domains | array of string | no | |
limits.concurrency_policy | reject_new, replace_oldest | no | |
status | active, suspended, revoked, expired | yes | |
external_id | string or null | no | |
metadata | object | no | |
livemode | boolean | yes | |
created_at | string or null (date-time) | no |
events.order.paid
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
object | any | yes | |
code | string | yes | |
status | paid | yes | |
event_id | string (uuid) | yes | |
ticket_id | string or null (uuid) | no | |
quantity | integer | yes | |
amount | integer | yes | Cents. |
currency | string | yes | |
channel | string | yes | |
checkout_id | string or null | no | |
promoter_id | string or null | no |
platform.webhook_endpoint.created
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
object | any | yes | |
url | string | yes | |
description | string or null | no | |
enabled_events | array of string | yes | |
api_version | string or null | no | |
status | enabled, disabled | yes | |
disabled_reason | string or null | no | |
livemode | boolean | yes | |
metadata | object | no | |
secret_previous_expires_at | string or null (date-time) | no | |
created_at | string or null (date-time) | no |
platform.webhook_endpoint.deleted
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
object | any | yes | |
url | string | yes | |
description | string or null | no | |
enabled_events | array of string | yes | |
api_version | string or null | no | |
status | enabled, disabled | yes | |
disabled_reason | string or null | no | |
livemode | boolean | yes | |
metadata | object | no | |
secret_previous_expires_at | string or null (date-time) | no | |
created_at | string or null (date-time) | no |
platform.webhook_endpoint.disabled
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
object | any | yes | |
url | string | yes | |
description | string or null | no | |
enabled_events | array of string | yes | |
api_version | string or null | no | |
status | enabled, disabled | yes | |
disabled_reason | string or null | no | |
livemode | boolean | yes | |
metadata | object | no | |
secret_previous_expires_at | string or null (date-time) | no | |
created_at | string or null (date-time) | no |
platform.webhook_endpoint.secret_rolled
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
object | any | yes | |
url | string | yes | |
description | string or null | no | |
enabled_events | array of string | yes | |
api_version | string or null | no | |
status | enabled, disabled | yes | |
disabled_reason | string or null | no | |
livemode | boolean | yes | |
metadata | object | no | |
secret_previous_expires_at | string or null (date-time) | no | |
created_at | string or null (date-time) | no |
platform.webhook_endpoint.updated
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
object | any | yes | |
url | string | yes | |
description | string or null | no | |
enabled_events | array of string | yes | |
api_version | string or null | no | |
status | enabled, disabled | yes | |
disabled_reason | string or null | no | |
livemode | boolean | yes | |
metadata | object | no | |
secret_previous_expires_at | string or null (date-time) | no | |
created_at | string or null (date-time) | no |
streams.asset.created
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
source | upload, url, clip, recording | yes | |
status | preparing, ready, errored | yes | |
duration | number or null | no | |
audio_only | boolean | yes | |
error | string or null | no | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.asset.deleted
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
source | upload, url, clip, recording | yes | |
status | preparing, ready, errored | yes | |
duration | number or null | no | |
audio_only | boolean | yes | |
error | string or null | no | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.asset.errored
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
source | upload, url, clip, recording | yes | |
status | preparing, ready, errored | yes | |
duration | number or null | no | |
audio_only | boolean | yes | |
error | string or null | no | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.asset.ready
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
source | upload, url, clip, recording | yes | |
status | preparing, ready, errored | yes | |
duration | number or null | no | |
audio_only | boolean | yes | |
error | string or null | no | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.asset.updated
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
source | upload, url, clip, recording | yes | |
status | preparing, ready, errored | yes | |
duration | number or null | no | |
audio_only | boolean | yes | |
error | string or null | no | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.clip.created
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
source_asset | string | yes | |
asset | string | yes | |
start_time | number | yes | |
end_time | number | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.content.purchased
| Field | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | yes | |
object | any | yes | |
content_id | string (uuid) | yes | |
content_item_id | string or null (uuid) | no | |
booking_id | string (uuid) | yes | |
purchase_type | string | yes | |
amount | integer | yes | Cents. |
currency | string | yes | |
access_expires_at | string or null (date-time) | no |
streams.live_stream.active
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
status | idle, connecting, active, disconnected, disabled | yes | |
latency_mode | low, standard | yes | |
reconnect_window | integer | yes | |
audio_only | boolean | yes | |
ingest | object | yes | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
simulcast_targets | array of object | yes | |
simulcast_targets[].id | string | yes | |
simulcast_targets[].object | any | yes | |
simulcast_targets[].url | string | yes | |
simulcast_targets[].status | string | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.live_stream.created
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
status | idle, connecting, active, disconnected, disabled | yes | |
latency_mode | low, standard | yes | |
reconnect_window | integer | yes | |
audio_only | boolean | yes | |
ingest | object | yes | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
simulcast_targets | array of object | yes | |
simulcast_targets[].id | string | yes | |
simulcast_targets[].object | any | yes | |
simulcast_targets[].url | string | yes | |
simulcast_targets[].status | string | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.live_stream.deleted
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
status | idle, connecting, active, disconnected, disabled | yes | |
latency_mode | low, standard | yes | |
reconnect_window | integer | yes | |
audio_only | boolean | yes | |
ingest | object | yes | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
simulcast_targets | array of object | yes | |
simulcast_targets[].id | string | yes | |
simulcast_targets[].object | any | yes | |
simulcast_targets[].url | string | yes | |
simulcast_targets[].status | string | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.live_stream.disconnected
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
status | idle, connecting, active, disconnected, disabled | yes | |
latency_mode | low, standard | yes | |
reconnect_window | integer | yes | |
audio_only | boolean | yes | |
ingest | object | yes | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
simulcast_targets | array of object | yes | |
simulcast_targets[].id | string | yes | |
simulcast_targets[].object | any | yes | |
simulcast_targets[].url | string | yes | |
simulcast_targets[].status | string | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.live_stream.idle
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
status | idle, connecting, active, disconnected, disabled | yes | |
latency_mode | low, standard | yes | |
reconnect_window | integer | yes | |
audio_only | boolean | yes | |
ingest | object | yes | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
simulcast_targets | array of object | yes | |
simulcast_targets[].id | string | yes | |
simulcast_targets[].object | any | yes | |
simulcast_targets[].url | string | yes | |
simulcast_targets[].status | string | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.live_stream.updated
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
status | idle, connecting, active, disconnected, disabled | yes | |
latency_mode | low, standard | yes | |
reconnect_window | integer | yes | |
audio_only | boolean | yes | |
ingest | object | yes | |
playback_ids | array of object | yes | |
playback_ids[].id | string | yes | |
playback_ids[].object | any | yes | |
playback_ids[].playback_id | string | yes | |
playback_ids[].policy | public, signed | yes | |
simulcast_targets | array of object | yes | |
simulcast_targets[].id | string | yes | |
simulcast_targets[].object | any | yes | |
simulcast_targets[].url | string | yes | |
simulcast_targets[].status | string | yes | |
external_id | string or null | no | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | no |
streams.moment.cancelled
Sent once, the first time a moment is cancelled. Cancelling it again sends nothing.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
live_stream | string | yes | |
type | shoutout, request, dedication, poll, product, sponsor, highlight, custom | yes | |
label | string | yes | |
payload | object or null | yes | |
customer | string or null | yes | The tenant's own reference for the fan behind the moment. Private to the tenant: it is in webhooks, never in the viewer feed. |
amount | integer or null | yes | Cents. |
currency | string or null | yes | |
occurred_at | string (date-time) | yes | The server's clock to the millisecond. A player shows the moment when the playhead's program date time reaches it. |
display_ms | integer | yes | |
visibility | public, private | yes | |
clip_before_s | integer or null | no | |
clip_after_s | integer or null | no | |
status | any | yes | |
cancelled_at | string or null (date-time) | yes | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | yes |
streams.moment.created
Something to show viewers in step with the video, such as a paid shoutout. The event carries the customer and amount; the viewer feed never does.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
live_stream | string | yes | |
type | shoutout, request, dedication, poll, product, sponsor, highlight, custom | yes | |
label | string | yes | |
payload | object or null | yes | |
customer | string or null | yes | The tenant's own reference for the fan behind the moment. Private to the tenant: it is in webhooks, never in the viewer feed. |
amount | integer or null | yes | Cents. |
currency | string or null | yes | |
occurred_at | string (date-time) | yes | The server's clock to the millisecond. A player shows the moment when the playhead's program date time reaches it. |
display_ms | integer | yes | |
visibility | public, private | yes | |
clip_before_s | integer or null | no | |
clip_after_s | integer or null | no | |
status | any | yes | |
cancelled_at | string or null (date-time) | yes | |
metadata | object | yes | |
livemode | boolean | yes | |
created_at | string (date-time) | yes |
streams.upload.asset_created
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
object | any | yes | |
provider | string | yes | |
status | string | yes | |
cors_origin | string or null | no | |
asset | string or null | no | |
expires_at | string (date-time) | no | |
livemode | boolean | yes | |
created_at | string (date-time) | no |