Requires an idempotency key via the Idempotency-Key header or
idempotency_key body param. Duplicate events (same account +
event type + idempotency key) return the existing event.
API key (nskey_live_...) or JWT token. API key is checked first;
if not found, falls back to Devise JWT authentication.
Idempotency key (alternative to body param)
128Event type name (lowercase, underscores)
^[a-z][a-z0-9_]{0,63}$Alternative to contact_id — resolves contact by email
Idempotency key (alternative to header)
128Custom event payload (max 32KB)
Duplicate event (idempotent — returns existing)