Skip to content

Ingest widget analytics events

POST
/events

Accept a batch of fire-and-forget widget lifecycle events (embed.viewed / embed.voted / embed.completed). Events are persisted to the embed_events table and enqueued for asynchronous geo / UA / UTM enrichment. Cardinality guardrails: ≤50 events per batch, ≤4 KiB context per event, known wire types only.

Batch of widget analytics events.

object
events
required
Array<object>
>= 1 items <= 50 items
object
type
required
string
Allowed values: embed.viewed embed.voted embed.completed
occurredAt
required

ISO-8601 timestamp from the client clock.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
polstId
string
>= 1 characters <= 128 characters
campaignId
string
>= 1 characters <= 128 characters
brandId
string
>= 1 characters <= 128 characters
context
required
object
referrer
string
<= 2048 characters
utm
object
key
additional properties
string
<= 512 characters
ua
string
<= 1024 characters
viewport
object
w
required
integer
<= 32768
h
required
integer
<= 32768

Batch accepted.

object
data
required
object
accepted
required
integer
<= 9007199254740991

Payload failed validation.